The present invention relates to data storage systems, and more specifically, this invention relates to using dynamic alternate keys in file systems which utilize a keyed index.
Virtual storage access method (VSAM) is a disk file storage access method used in IBM z/OS environments. VSAM data sets include multiple records, and the data sets are of fixed or variable length, and are organized into fixed-size blocks called Control Intervals (CIs). The CIs are then organized into larger groups referred to as Control Areas (CAs). CIs are used as units of transfer between direct access storage devices (DASDs) and requesting systems such that a read request will read one complete CI. CAs are used as units of allocation, such that when a VSAM data set is defined, an integral number of CAs will be allocated for that VSAM data set.
An integrated catalog facility (ICF) is provided on a server or mainframe which includes two components, a basic catalog structure (BCS) and a VSAM volume data set (VVDS). The BCS, sometimes referred to as a catalog generically, is typically structured as a VSAM key sequence data set (KSDS) which is an indexed VSAM organization having the most structured form of a data set, and allows for the VSAM to provide a majority of the access routines without substantial input or direction from the accessing system, besides the most rudimentary information. The BCS component is typically accessed via VSAM non-shared resource (NSR) interfaces, and includes information related to a location of user data sets and system data sets (whichever are stored to the corresponding disk, tape, or optical drive).
The VVDS is typically structured as a VSAM entry sequenced data set (ESDS) which is less structured than the VSAM KSDS. ESDSs do not contain an index component and require access routines to track the location of the records stored in the ESDS. Pointers to VVDS records in the ESDS are stored in the associated BCS records. The VSAM ESDS is accessed via both VSAM NSR and media manager interfaces, and includes information about specific attributes of user data sets and system data sets (whichever are stored to the corresponding DASD). The ICF allows for cross-system sharing of the BCS and VVDS, and is entirely responsible for sharing serialization, caching, and buffer invalidation, among other functions.
With key sequenced data sets (KSDSs), the contents consist of the users data and a unique key (specified by the user) which is used to locate specific data records in the data set. Each record in a KSDS has one unique key. Entry sequenced data sets (ESDSs) on the other hand, only contain user data, and the user provides the relative byte address (RBA) of the location of the specific data records for the VSAM to locate. The VSAM data sets containing the user data are referred to as the “base” data sets.
Typically, applications are controlled at the database administration (DBA) level. Databases generally include one or more records (that may be included in a data set) that each include “known” information located at one or more pre-determined locations in the records. The definition/location of the known information, often referred to as “fields” or “schema,” is a physical attribute of the database. Creating or changing these attributes involves a collaborative effort between the DBA and application developers, where the format of the data must match the logic of the application program(s). Changes to the program logic may require reformatting all the records in the database and may also effect other application programs accessing the same database, resulting in a difficult and lengthy changeover process in order to implement the changes.
Accordingly, it would be helpful to remove the need for pre-determined fields or schema when using a keyed index, such as VSAM KSDS, and others known in the art. This would allow for application programmers to dynamically create relationships between records in the data set for the specific application program being developed.